Simulation of resizable bodies using a rigid body solver

ABSTRACT

A computer-implemented method and system automatically adjusts the size of a rigid body model. The method and system construct a two-dimensional model or a three-dimensional model, where the model has one or more rigid bodies. The rigid bodies are converted into geometric primitives that represent a respective rigid body and enable the respective rigid body to resize. One or more of the primitives are constrained to one another. A solver process changes a size of at least one geometric primitive and a rigid body simulation process uses the resized primitive(s) as input.

RELATED APPLICATION

This application claims the benefit of U.S. Provisional Application No.62/096,285, filed on Dec. 23, 2014. The entire teachings of the aboveapplication are incorporated herein by reference.

BACKGROUND OF THE INVENTION

Computer-aided design (CAD) software allows a user to construct andmanipulate complex three-dimensional (3D) models. A number of differentmodeling techniques can be used to create a 3D model. One such techniqueis a solid modeling technique, which provides for topological 3D modelswhere the 3D model is a collection of interconnected topologicalentities (e.g., vertices, edges, and faces). The topological entitieshave corresponding supporting geometrical entities (e.g., points,trimmed curves, and trimmed surfaces). The trimmed surfaces correspondto respective topological faces bounded by edges. Hereinafter, the termsvertex, edge, and face will be used interchangeably with theirrespective, corresponding geometric entities.

A design engineer is a typical user of a 3D CAD system. The designengineer designs physical and aesthetic aspects of 3D models, and isskilled in 3D modeling techniques. The design engineer creates parts andmay assemble the parts into a subassembly or an assembly. A subassemblymay also consist of other subassemblies. An assembly is designed usingparts and subassemblies. Parts and subassemblies are hereinaftercollectively referred to as components.

During the design process, an engineer may wish to analyze the motion ofa 3D design of a model to evaluate the real-world requirements andperformance of the product being designed. Such an analysis may beexecuted by an engineering simulation process, such as SOLIDWORKS®Motion and SOLIDWORKS® Simulation, both available from Dassault SystemesSolidWorks Corporation of Waltham, Mass., and both of which use the CADmodel data to set up and execute motion and simulation studies.

Motion analysis is one of the most important and basic analyses that isexecuted during the design of a real-world object. While motion analysisis very useful for providing insightful numerical results, there is avery stringent assumption made by analysis programs about the rigidityof parts in the assembly. Usually, motion analysis of a mechanism isdone under the assumption that the parts in the assembly are rigid(i.e., the parts do not change size or shape).

However, when motion analysis is repeatedly performed, for examplewithin another analysis process, often a need exists to resize thegeometry of the parts involved in the motion analysis. For example, whena user wants to optimize the design of a mechanism to reduce a trackingerror (i.e., the difference between the desired trajectory and theactual trajectory traced by the tracking point of a mechanism), rigidbody simulation needs to be performed repeatedly such that in everyiteration of the optimizer the rigid parts are resized to differentdimensions and the tracking error is computed once again. Usingconventional rigid body models becomes difficult in such a case becausethe dimensions of the parts keep changing. Generally, a user's onlyoption is to discard previously built rigid body models and build newones in every iteration cycle of the simulation process, where the newrigid body models have resized dimensions of individual parts. This isinefficient and time consuming.

A method and system that does not require a user to redesign one or moreparts multiple times in order to run a motion analysis process in whichrigid parts need to be resized would enhance the capabilities of CAD andcomputer-aided simulation systems by speeding up the process in which amodel may be designed and analyzed.

SUMMARY OF THE INVENTION

In general, in one aspect, embodiments of the invention feature acomputer-implemented method for automatically adjusting the size of arigid body. The computer-implemented method constructs a two-dimensionalor a three-dimensional model, where the model is comprised of one ormore rigid bodies. At least one of the rigid bodies is represented byprimitive entities that are constrained to one another in such a way asto allow for automatic resizing of the rigid body represented as theprimitive entities.

Other embodiments include a computer-aided design (CAD) system having aprocessor operatively coupled to a data storage system and a datastorage memory operatively coupled to the processor. In suchembodiments, the data storage system stores a two-dimensional (2D)and/or three-dimensional (3D) model, the 2D and/or 3D model represents areal-world object and comprises a rigid body, and the data storagememory comprises instructions to configure the processor toautomatically adjust a size of the rigid body.

Still other embodiments include a computer-readable medium configured tostore instructions for creating a 2D and/or a 3D model where the modelrepresents a real-world object and comprises a rigid body. Theinstructions, when loaded and executed by a processor, cause theprocessor to automatically adjust a size of the rigid body.

Embodiments execute a solver process, which changes the size of one ofthe primitives. Additionally, a rigid body simulation is executed inwhich the resized primitives are used as inputs to the rigid bodysimulation. Embodiments may include using the output of the rigid bodysimulation as input to a second iteration of the execution of the solverprocess.

Further embodiments include each of the geometric primitives defining aresizable shape, and the constraints (a) constraining a subset of themembers to be parallel to one another, (b) constraining a subset of themembers to be perpendicular to one another, or (c) maintaining aprescribed angle between certain of the members. The primitives includeat least one of a point, a line, a circle, a planar polygon, a cylinder,a three-dimensional prism, and a parameterizable surface. Moreover, theprimitives may be a line having endpoints that may change location, arectangle having adjacent sides constrained by perpendicularconstraints, a triangle having sides constrained by specified angles, aplane, a set of six planes, two perpendicular lines representing acylinder, or any combination thereof. Parameter values may be selectedfor the resized primitives output by the solver process to reflect adesired design of the model, where the parameter values are designconstraints.

The details of one or more embodiments of the invention are set forth inthe accompanying drawings and the description that follows. Otherfeatures, objects, and advantages of the invention will be apparent fromthe description and drawings, and from the claims.

BRIEF DESCRIPTION OF THE DRAWINGS

The foregoing will be apparent from the following more particulardescription of example embodiments of the invention, as illustrated inthe accompanying drawings in which like reference characters refer tothe same objects throughout the different views. The drawings are notnecessarily to scale, emphasis instead being placed upon illustratingembodiments of the present invention.

FIG. 1 is an illustration of a computer-aided design (CAD) model.

FIG. 2 is an illustration of the computer-aided design (CAD) model inFIG. 1 after motion to one or more parts has occurred.

FIG. 3 is a table showing shapes and respective primitiverepresentations.

FIG. 4 is a flow diagram of a process that includes a rigid bodysimulation.

FIG. 5 is an illustration of a computer system in which embodiments ofthe present invention may be implemented.

DETAILED DESCRIPTION OF THE INVENTION

Simulating rigid body motion of an assembly of parts designed using acomputer-aided design (CAD) system often requires rigid body parts toresize, as is the case during optimization or design of experiments(DOE) methods. In state-of-the-art systems, usually the only option isto discard previously designed rigid body models and rebuild a new modelwith different dimensions before executing a simulation of the rigidbody motion again. The present invention addresses this problem byenabling the reuse of rigid body models even after resizing the parts inthe models.

In general, the present invention enables the simulation of resizablebodies without having to rebuild a new rigid body model in everyiteration cycle. Utilizing the present invention is far more efficientthan having to discard previously designed models and create new modelsto resize one or more rigid parts after an iteration cycle. The presentinvention may be used as the foundation to solve various optimizationproblems including, by way of non-limiting example, tracking problems,and problems related to motor acceleration and motor torques.

Referring now to FIG. 1, an illustration of a CAD model 100 is shown.The model 100 contains parts 120-150, which are constrained to at leastone other part. Parts 120 and 140 are also constrained to the ground,which is beneath parts 120 and 140. A path 110 along which part 150moves is also shown in FIG. 1. Path 110 may reflect a path output by asimulation process. Alternatively, path 110 may have been input by auser and the sizes of parts 120-150 may have been resized automaticallyby the present invention so that part 150 travels along the path asmodel 100 undergoes a motion analysis process.

FIG. 2 is an illustration of CAD model 100 after parts 120-150 haveundergone motion in an embodiment of the present invention. As shown inFIG. 2, part 150 is at a different location on the path 110.Additionally, the orientations of parts 125 and 135 are at differentangles with respect to part 130 than as shown in FIG. 1 due to motion ofmodel 100. The orientations of parts 125 and 135 are also at differentangles to parts 120 and 140, respectively, due to motion of model 100.

The present invention allows rigid bodies to resize without a userhaving to rebuild one or more rigid body models of the entire mechanism.Each rigid body model is converted to a representation that is acollection of geometric primitives such as points, lines, planes, andparameterizable surfaces (i.e., any surface that can be defined usingsome parameters that may be held fixed during the rigid body simulationto make the surface rigid). Each of these geometric primitives, in turn,represents rigidly in the model. Any original dimension that wasinternal to the CAD part model is converted to an external dimensionbetween the collection of geometric primitives.

Appropriate constraints are applied to the geometric primitives based onthe geometry type. For example, for a rectangle the lines representingthe boundary of the rectangle are constrained geometrically so thatadjacent lines remain perpendicular to each other. Data specifying anoriginal size is converted to a dimension constraint in the rigid bodyrepresentation (i.e., the collection of geometric primitivesrepresenting the rigid body). Thus, the height of the rectangle becomesone dimension constraint and the width of the rectangle becomes a seconddimension constraint in the rigid body representation, thereby ensuringthat the height of the left and right sides of the rectangle and thewidths of the top and bottom of the rectangle maintain the same value.All the geometries in the representation are allowed to move withrespect to each other provided that the geometries satisfy the geometricconstraints and the dimension constraints.

Referring now to FIG. 3, examples of the conversion of rigid bodies intobasic flexible primitives is shown. The left column illustrates rigidbody shapes, which are a line 305, a rectangle 315, a triangle 325, aregular polygon 335, a circle 345, and a three-dimensional (3D) box 355.The right column illustrates corresponding rigid body representations310, 320, 330, 340, 350, 360 (which are collections of geometricprimitives) of the line 305, the rectangle 315, the triangle 325, theregular polygon 335, the circle 345, and the 3D box 355, respectively.Such rigid body representations 310, 320, 330, 340, 350, 360 allow theshapes 305, 315, 325, 335, 345, and 355 in the left column of FIG. 3 tobe resizable without user intervention. As illustrated, the line 305 isconverted into a line representation 310, which is a line primitivehaving a dimension constraint (illustrated by an arrow) between theendpoints; the endpoints are illustrated by circles. The rectangle 315is converted into a rectangular representation 320, which consists offour line primitives having dimension constraints (illustrated byarrows) between the appropriate endpoints (illustrated by circles). Inaddition, the line primitives are constrained such that the adjacentlines are perpendicular to each other. The triangle 325 is convertedinto a triangle representation 330 having three lines constrained toadjacent lines at the appropriate endpoints of the three lines(illustrated by circles). Other constraints may constrain adjacent linessuch that adjacent lines meet at right angles and have coincidentendpoints. Additionally, constraints may specify minimum and/or maximumvalues for the angles between adjacent lines. The regular polygon 335 isconverted into a polygon representation 340 having adjacent linesconstrained at the appropriate endpoints and a fixed angle between them.The circle 345 is converted into a circle representation 350 with centerlocation defined by the inner point and the radius defining the distancebetween the center point and the point on the circumference with theadditional constraint that the point on the circumference lies on theperiphery. The 3D box 355 is converted into a representation 360 havingdimension constraints between opposite planes that are also constrainedto be parallel to each other with the additional constraints thatappropriate planes are orthogonal to each other. Moreover, as discussed,the heights and widths of rigid bodies may be constrained in respectiverepresentations of those rigid bodies.

Another flexible primitive may consist of six planes that represent arectangular prism, which allows the vertices and therefore thedimensions of the six planes to be adjusted by an optimization process.Furthermore, another flexible primitive may be two perpendicular linesthat represent a height and a radius of a cylindrical body.

If the original rigid body part changes size for example, as a result ofan optimizer process, the corresponding dimension in the representationis changed and is added as a constraint possibly replacing the previousconstraint corresponding to the same dimension having a different value.This allows the parts to resize and still maintain their rigid naturewith the presence of proper constraints and dimensions.

This present invention may operate in a two-dimensional and athree-dimensional environment. The geometric shape may be defined bygeometry primitives and a few key dimensions. Additional shapes beyondthose which are shown in FIG. 3, such as any irregular shape, may havecorresponding rigid body representations as well. For example, in atwo-dimensional environment, the shapes that can be built with point,line, and plane primitives are links, rectangles, triangles, andpolygons. In three-dimensional space, possible 3D shapes are solidlinks, rectangular prisms, triangular prisms, and prisms with apolygonal cross section.

Referring now to FIG. 4, a process 400 that executes a procedure thatcombines an external solver process and a rigid body simulation isshown. In the first step, an external solver is executed (step 410). Theexternal solver may be an optimizer process or a design of experimentsprocess. An example of an external solver is iSight, available fromDassault Systèmes' Simulia Corp. A 2D or a 3D model is used as input tothe external solver. The external solver outputs a different geometricconfiguration of the respective 2D or 3D model. Parameter values of themechanism design are then selected (step 420). Such parameter values maybe the length and height of a rectangular rigid body, the length of aline, and the base height of a triangular rigid body. A rigid bodysimulation is then executed (step 430). The output of the rigid bodysimulation reflects the given set of design parameters, which were heldfixed during the rigid body simulation. In the next step, terminationcriteria are evaluated (step 440). Such criteria may be the number oftimes to run the rigid body simulation, whether convergence wasachieved, the design goals, or any combination thereof. If thetermination criteria have not been met, process 400 repeats beginningwith executing the external solver (step 410). During process 400, therigid bodies are allowed to resize because they are represented as acollection of geometric primitives, as has been discussed.

FIG. 5 illustrates a computerized modeling system 500 that includes aCPU 502, a computer monitor 504, a keyboard input device 506, a mouseinput device 508, and a storage device 510. The CPU 502, computermonitor 504, keyboard 506, mouse 508, and storage device 510 can includecommonly available computer hardware devices. For example, the CPU 502can include an Intel-based processor. The mouse 508 may haveconventional left and right buttons that the design engineer may pressto issue a command to a software program being executed by the CPU 502.As an alternative or in addition to the mouse 508, the computerizedmodeling system 500 can include a pointing device such as a mouse,stylus, touch-sensitive pad, or pointing device and buttons built intothe keyboard 506. Those of ordinary skill in the art appreciate that thesame results described herein with reference to a mouse device can beachieved using another available pointing device. Other appropriatecomputer hardware platforms are suitable as will become apparent fromthe discussion herein. Such computer hardware platforms are preferablycapable of operating the Microsoft Windows® 7, UNIX, Linux, or MAC OSoperating systems.

Additional computer processing units and hardware devices (e.g., rapidprototyping, video, and printer devices) may be included in thecomputerized modeling system 500. Furthermore, the computerized modelingsystem 500 may include network hardware and software thereby enablingcommunication to a hardware platform 512, and facilitating communicationbetween numerous computer systems that include a CPU and a storagesystem, among other computer components.

Computer-aided modeling and simulation software (e.g., process 400) maybe stored on the storage device 510 and loaded into and executed by theCPU 502. The modeling software allows a design engineer to create andmodify a 3D model and implements aspects of the invention describedherein. The CPU 502 uses the computer monitor 504 to display a 3D modeland other aspects thereof as described. Using the keyboard 506 and themouse 508, the design engineer can enter and modify data associated withthe 3D model. The CPU 502 accepts and processes input from the keyboard506 and mouse 508. The CPU 502 processes the input along with the dataassociated with the 3D model and makes corresponding and appropriatechanges to that which is displayed on the computer monitor 504 ascommanded by the modeling software. In one embodiment, the modelingsoftware is based on a solid modeling system that may be used toconstruct a 3D model consisting of one or more solid and surface bodies.

Embodiments of the invention may be implemented in digital electroniccircuitry, or in computer hardware, firmware, software, or incombinations thereof. Apparatuses may be implemented in a computerprogram product tangibly embodied in a machine-readable storage devicefor execution by a programmable processor; and method steps may beperformed by a programmable processor executing a program ofinstructions to perform functions by operating on input data andgenerating output. Embodiments of the invention may advantageously beimplemented in one or more computer programs that are executable on aprogrammable system including at least one programmable processorcoupled to receive data and instructions from, and to transmit data andinstructions to, a data storage system, at least one input device, andat least one output device. Each computer program may be implemented ina high-level procedural or object-oriented programming language, or inassembly or machine language if desired; in any case, the language maybe a compiled or interpreted language. Suitable processors include, byway of non-limiting example, both general and special purposemicroprocessors. Generally, a processor will receive instructions anddata from a read-only memory and/or a random access memory and in someembodiments instructions and data may be downloaded through a globalnetwork. Storage devices suitable for tangibly embodying computerprogram instructions and data include all forms of non-volatile memory,including by way of example semiconductor memory devices, such as EPROM,EEPROM, and flash memory devices; magnetic disks such as internal harddisks and removable disks; magneto-optical disks; and CD-ROM disks. Anyof the foregoing may be supplemented by, or incorporated in,custom-designed ASICs (application-specific integrated circuits).

Embodiments of the present invention or aspects thereof described hereinmay be implemented in the form of hardware, firmware, or software. Ifimplemented in software the software may be stored on any non-transientcomputer readable medium that is configured to enable a processor toload the software or subsets of instructions thereof. The processor thenexecutes the instructions and is configured to operate or cause anapparatus to operate in a manner as described herein.

Although the present invention is described in connection with anexemplary computer system environment, embodiments of the invention areoperational with numerous other general purpose or special purposecomputer system environments or configurations. The computer systemenvironment is not intended to suggest any limitation as to the scope ofuse or functionality of any aspect of the invention. Moreover, thecomputer system environment should not be interpreted as having anydependency or requirement relating to any one or combination ofcomponents illustrated in the exemplary operating environment. Examplesof computer systems, environments, and/or configurations that may besuitable for use with aspects of the invention include, but are notlimited to, personal computers (PCs), server computers, hand-held andlaptop devices, multiprocessor systems, microprocessor-based systems,set top boxes, programmable consumer electronics, mobile telephones andmobile operating systems, network PCs, minicomputers, mainframecomputers, distributed computing environments that include any of theabove systems or devices, and the like. The computer system may havestandalone components or workstations, or the computer system may beformed of networked computers by any of known communications networks,processing networks, cloud-based networks, related protocols and thelike.

As can be appreciated, the network can be a public network, such as theInternet, or a private network such as an LAN or WAN network, or anycombination thereof and can also include PSTN or ISDN sub-networks. Thenetwork can also be wired, such as an Ethernet network, or can bewireless such as a cellular network including EDGE, 3G and 4G wirelesscellular systems. The wireless network can also be WiFi, Bluetooth, orany other wireless form of communication that is known. Thus, thenetwork is merely exemplary and in no way limits the scope of thepresent advancements.

Advantages of the present invention includes resizing rigid body modelswithout user intervention, the reuse of rigid body models even afterparts of those models are resized, providing an efficient way to performrepetitive rigid body simulations of an assembly where the parts of theassembly may have different sizes from one iteration to the next,providing an efficient way to perform what-if analyses, and enablingtight integration of analysis in the computer-aided design workflow. Thepresent invention may be utilized even if the design is not fullydefined with only a few of the design parameters changing at a time, andthus, is useful at all stages of progressively building an assembly ofparts.

Other advantages of the present invention include the following. Whenthe size of the part changes, the primitives in the representation canbe changed from an original size to a new size in smaller increments.Changing dimensions in small increments avoids any flipping issues withthe geometries involved (e.g., the constraint solver converging to theundesirable solution of two solutions that both satisfy all theequations) incremental change of size keeps the new design closer to theoriginal design without causing any flipping. The solver givesconsistent results as the new sizes are applied incrementally. Moreover,without this technology—if a dimension is internal and if the dimensionchanges then that part must be rebuilt. With this technology, the partcan be resized without having to rebuild the part.

While this invention has been particularly shown and described withreferences to example embodiments thereof, nevertheless, understood bythose skilled in the art is that various modifications may be madewithin the boundaries of the invention. For example, embodiments of thepresent invention may change the order in which operations areperformed. Furthermore, in most contexts, an assembly may also mean asubassembly. Additionally, depending on the needs of an implementation,particular operations described herein may be implemented as a combinedoperation, eliminated, added to, or otherwise rearranged.

What is claimed is:
 1. A computer-implemented method for automaticallyresizing a rigid body model, the method comprising: using acomputer-aided design system, constructing a model, wherein: the modelis one of a two-dimensional model and a three-dimensional model; and themodel comprises one or more rigid bodies; converting at least one of therigid bodies into a set of geometric primitives representing arespective rigid body, wherein the geometric primitives enable therespective rigid body to resize; constraining certain members of the setof geometric primitives; executing a solver process on a computerprocessor, wherein: the solver process changes a size of at least onegeometric primitive representing the respective rigid body; and the setof geometric primitives representing the respective rigid body allow thechange in the size without user intervention; and executing a rigid bodysimulation, wherein the one or more resized primitives are inputs to therigid body simulation.
 2. The computer-implemented method of claim 1,wherein each of the geometric primitives serve to define a resizableshape.
 3. The computer-implemented method of claim 1, further comprisingusing the output of the rigid body simulation as the input to a seconditeration of executing the solver process.
 4. The computer-implementedmethod of claim 1, wherein constraining members of the set of geometricprimitives comprises adding constraints that accomplish at least one ofconstraining a subset of the members to be parallel to one another,constraining a subset of the members to be perpendicular to one another,and maintaining a prescribed angle between certain of the members. 5.The computer-implemented method of claim 1, wherein each member in theset of geometric primitives is one of a point, a line, a plane, acircle, a planar polygon, a cylinder, a three-dimensional prism, and aparameterizable surface.
 6. The computer-implemented method of claim 1,wherein the set of geometric primitives comprises at least one of a linehaving endpoints that may change location, a rectangle having adjacentsides constrained by perpendicular constraints, a triangle having sidesconstrained by specified angles, a plane, a set of six planes, twoperpendicular lines representing a cylinder, and a parameterizablesurface.
 7. The computer-implemented method of claim 1, furthercomprising selecting parameter values for the resized primitives outputby the solver process, wherein: the parameter values reflect a desireddesign of the model, and the parameter values are design constraints. 8.A computer-aided design system comprising: a processor operativelycoupled to a data storage system, the data storage system storing amodel of a real-world object; and a data storage memory operativelycoupled to the processor and comprising instructions to configure theprocessor to: construct the model, wherein the model is one oftwo-dimensional model and a three-dimensional model comprised of one ormore a rigid bodies; convert at least one of the rigid bodies into a setof geometric primitives representing the respective rigid body, whereinthe geometric primitives enable the respective rigid body to resize;constrain one or more members of the set of geometric primitives;execute a solver process on a computer processor, wherein: the solverprocess changes a size of at least one geometric primitive representingthe rigid body; and the set of geometric primitives representing therigid body allow the change in the size without user intervention; andexecute a rigid body simulation, wherein the one or more resizedprimitives are inputs to the rigid body simulation.
 9. Thecomputer-aided design system of claim 8, wherein each of the geometricprimitives define a resizable shape.
 10. The computer-aided designsystem of claim 8, further comprising instructions to configure theprocessor to use the output of the rigid body simulation as the input toa second iteration of executing the solver process.
 11. Thecomputer-aided design system of claim 8, wherein constraining members ofthe set of geometric primitives comprises adding constraints thataccomplish at least one of constraining a subset of the members to beparallel to one another, constraining a subset of the members to beperpendicular to one another, and maintaining a prescribed angle betweencertain of the members.
 12. The computer-aided design system of claim 8,wherein each member in the set of geometric primitives is one of apoint, a line, a plane, a circle, a planar polygon, a cylinder, athree-dimensional prism, and a parameterizable surface.
 13. Thecomputer-aided design system of claim 8, wherein the set of geometricprimitives comprises at least one of a line having endpoints that maychange location, a rectangle having adjacent sides constrained byperpendicular constraints, a triangle having sides constrained byspecified angles, a plane, a set of six planes, two perpendicular linesrepresenting a cylinder, and a parameterizable surface.
 14. Thecomputer-implemented method of claim 1, further comprising instructionsto configure the processor to select parameter values for the resizedprimitives output by the solver process, wherein: the parameter valuesreflect a desired design of the model, and the parameter values aredesign constraints.
 15. A non-transitory computer-readable data storagemedium comprising instructions causing a computer to: store a model of areal-world object, wherein the model is one of a two-dimensional modeland a three-dimensional model comprised of one or more rigid bodies;convert at least one of the rigid bodies into a set of geometricprimitives representing the respective rigid body, wherein: eachgeometric primitive defines a resizable shape, and the geometricprimitives enable the respective rigid body to change a size; constrainone or more members of the set of geometric primitives; execute a solverprocess on a computer processor, wherein: the solver process changes thesize of at least one of the geometric primitives; and the set ofgeometric primitives representing the respective rigid body allow thechange in the size without user intervention; and execute a rigid bodysimulation, wherein the one or more resized primitives are inputs to therigid body simulation.
 16. The computer-readable data storage medium ofclaim 15, further comprising instructions causing a computer to use theoutput of the rigid body simulation as the input to a second iterationof executing the solver process.
 17. The computer-readable data storagemedium of claim 15, wherein constraining members of the set of geometricprimitives comprises adding constraints that accomplish at least one ofconstraining a subset of the members to be parallel to one another,constraining a subset of the members to be perpendicular to one another,and maintaining a prescribed angle between certain of the members. 18.The computer-readable data storage medium of claim 15, wherein eachmember in the set of geometric primitives is one of a point, a line, aplane, a circle, a planar polygon, a cylinder, a three-dimensionalprism, and a parameterizable surface.
 19. The computer-readable datastorage medium of claim 15, wherein the set of geometric primitivescomprises at least one of a line having endpoints that may changelocation, a rectangle having adjacent sides constrained by perpendicularconstraints, a triangle having sides constrained by specified angles, aplane, a set of six planes, two perpendicular lines representing acylinder, and a parameterizable surface.
 20. The computer-readable datastorage medium of claim 15, further comprising instructions causing acomputer to select parameter values for the resized primitives output bythe solver process, wherein: the parameter values reflect a desireddesign of the model, and the parameter values are design constraints.